In recent years, with the development of manufacturing technologies, flash memories gradually play an important role in the memory market due to an increasingly low cost and increasingly high storage capacity and density, and have developed in the trend of becoming a main online storage medium in place of magnetic disks. Since the working principle of a flash is completely different from that of a magnetic disk, the existing storage system cannot effectively work on the flash, and cannot be executed unless the flash is packaged as a block device like the magnetic disk by using certain intermediate mapping techniques. What is worse, the process makes the working efficiency rather low, and as a result, the fast reading/writing characteristics of the flash cannot be fully utilized. The emergence of high-capacity flash memories brings hopes for performing data storage and searching operations in a high efficient, and also causes unprecedented challenges to the implementation of highly efficient data storage technologies.
Currently, a journal flash file system (JFFS) has been proposed, and the latest version JFFS3 adopts a B+ tree as an index structure. In JFFS3, a newly inserted or updated original data record is directly marked as a log, and a small B+ tree structure is maintained in a memory, so as to improve the searching efficiency of the records in the log area. After a buffer of the memory is full, the B+ tree in the flash is updated, and meanwhile, data records in the log area are converted as normal data records, and afterwards, a subsequently inserted record turns to become a new log record, and a new temporal index is correspondingly maintained in the memory for the log record, and the process is repeatedly performed, which aims at updating logs in batches by delaying the update of the B+ tree structure.
In fact, the principle of the JFFS algorithm is to delay the update of the B+ tree structure by using logs, so as to combine a plurality of flash write operations into one write operation. However, the reduction in the number of flash write operations does not mean enhancing the data writing efficiency. In addition, the algorithm needs to occupy a large flash space, and has complex data maintenance operations.